Ext.define("Xyh.view.orders.List", {
	extend : 'Ext.panel.Panel',
	alias : 'widget.orderlist',

	items : [{
				xtype : 'form',
				padding : 5,
				autoScroll : true,
				layout : {
					type : 'table',
					columns : 3
				},
				url : '/order/list',
				fieldDefaults : {
					labelSeparator : ': ',
					labelAlign : 'right'
				},
				items : [{
							xtype : 'textfield',
							name : 'order_code',
							fieldLabel : 'HB/L编号'
						}, {
							xtype : 'combobox',
							fieldLabel : '业务人员',
							// emptyText : '请选择业务员',
							name : 'saleman',
							queryMode : 'local',
							forceSelection : true,
							displayField : 'name',
							valueField : 'id',
							store : {
								fields : ['id', 'name'],
								autoLoad : true,
								proxy : {
									type : 'ajax',
									url : '/user/list',
									reader : {
										type : 'json'
									}
								}
							}
						}, {
							xtype : 'combobox',
							fieldLabel : '客户',
							name : 'client_code',
							queryMode : 'local',
							forceSelection : true,
							displayField : 'name',
							valueField : 'code',
							store : {
								fields : ['code', 'name', 'person', 'phone',
										'fax'],
								autoLoad : true,
								proxy : {
									type : 'ajax',
									url : '/contact/list?oftype=zj',
									reader : {
										type : 'json',
										root : 'contacts'
									}
								}
							}
						}, {
							xtype : 'datefield',
							fieldLabel : '订舱日期',
							format : 'Y-m-d',
							altFormats : 'Y-m-d',
							name : 'booking_date'
						}, {
							xtype : 'combobox',
							fieldLabel : 'H放货方式',
							name : 'h_release_way',
							queryMode : 'local',
							forceSelection : true,
							store : [[1, '电放'], [2, '正本提单'], [3, 'SWB']]

						}, {
							xtype : 'combobox',
							fieldLabel : 'M放货方式',
							name : 'm_release_way',
							queryMode : 'local',
							forceSelection : true,
							store : [[1, '电放'], [2, '正本提单'], [3, 'SWB']]

						}, {
							xtype : 'combobox',
							fieldLabel : '箱型',
							name : 'container_info',
							queryMode : 'local',
							displayField : 'size',
							valueField : 'size',
							forceSelection : true,
							store : {
								fields : ['id', 'size'],
								autoLoad : true,
								proxy : {
									type : 'ajax',
									url : '/container/list',
									reader : {
										type : 'json'
									}
								}
							}

						}],
				buttons : [{
							text : '查询',
							action : 'search'
						}, {
							text : '重置',
							action : 'reset_search'
						}]
			}, {
				html : '<hr/>'
			}, {
				xtype : 'grid',
				title : '',
				store : 'Order',
				columns : [{
							header : '单号(HB/L)',
							dataIndex : 'order_code'
						}, {
							header : '客户名称',
							dataIndex : 'client_company'
						}, {
							header : '订舱日期',
							dataIndex : 'booking_date'
						}, {
							header : '开船日期',
							dataIndex : 'shipping_date'
						}, {
							header : '业务员',
							dataIndex : 'saleman_name'
						}, {
							header : '操作员',
							dataIndex : 'operator_name'
						}, {
							header : '柜型',
							dataIndex : 'container_info'
						}, {
							header : 'H付款方式',
							dataIndex : 'h_payment_type'
						}, {
							header : 'M付款方式',
							dataIndex : 'm_payment_type'
						}, {
							header : 'H放货方式',
							dataIndex : 'h_release_way',
							renderer : function convert(value) {
								if (value == 1)
									return '电放';
								if (value == 2)
									return '正本提单';
								if (value == 3)
									return '正本提单';
							}
						}, {
							header : 'M放货方式',
							dataIndex : 'm_release_way',
							renderer : function convert(value) {
								if (value == 1)
									return '电放';
								if (value == 2)
									return '正本提单';
								if (value == 3)
									return '正本提单';
							}
						},{
							header : '',
							sortable : false,
							xtype : 'actioncolumn',
							items : [{
								id : 'columnhbl',
								icon : 'resource/images/H.png',
								tooltip : 'HB/L操作',
								handler : function(grid, rowIndex, colIndex) {
									var record = grid.getStore()
											.getAt(rowIndex);
									var tab_main = Ext.getCmp('tab_Main');
									var tab = tab_main.child('#order'
											+ record.get('id') + 'H');
									if (tab == undefined) {
										var config = {
											title : record.get('order_code')
													+ '(HB/L)',
											id : 'order' + record.get('id')
													+ 'H',
											closable : true,
											padding : 5,
											items : {
												xtype : 'hbl',
												orderid : record.get('id')
											}
										};
										var tab = tab_main.add(config);
										var form = tab.down('form');
										Ext.Ajax.request({
											url : '/order/hbl/'
													+ record.get('id'),
											success : function(response) {
												var values = Ext
														.decode(response.responseText);
												form
														.getForm()
														.setValues(values.fields);
												form.down('hiddenfield')
														.setValue(values.pk);
											}
										});
									}
									tab_main.setActiveTab(tab);
								}
							}, {
								icon : 'resource/images/M.png',
								tooltip : 'MB/L操作',
								handler : function(grid, rowIndex, colIndex) {
									var record = grid.getStore()
											.getAt(rowIndex);
									var tab_main = Ext.getCmp('tab_Main');
									var tab = tab_main.child('#order'
											+ record.get('id') + 'M');
									if (tab == undefined) {
										var config = {
											title : record.get('order_code')
													+ '(MB/L)',
											id : 'order' + record.get('id')
													+ 'M',
											closable : true,
											padding : 5,
											items : {
												xtype : 'mbl'
											}
										};
										var tab = tab_main.add(config);
										var form = tab.down('form');
										Ext.Ajax.request({
											url : '/order/mbl/'
													+ record.get('id'),
											success : function(response) {
												var values = Ext
														.decode(response.responseText);
												form
														.getForm()
														.setValues(values.fields);
												form.down('hiddenfield')
														.setValue(values.pk);
											}
										});
									}
									tab_main.setActiveTab(tab);
								}

							}, {

								icon : 'resource/images/bill.jpg',
								tooltip : '账单',
								handler : function(grid, rowIndex, colIndex) {
									var record = grid.getStore()
											.getAt(rowIndex);
									var tab_main = Ext.getCmp('tab_Main');
									var tab = tab_main.child('#bill'
											+ record.get('id'));
									if (tab == undefined) {
										var config = {
											title : record.get('order_code')
													+ '账单',
											id : 'bill' + record.get('id'),
											closable : true,
											padding : 5,
											items : {
												xtype : 'panel',
												items : [{
															xtype : 'gridpanel',
															bodyPadding : 1,
															features: [{ftype:'grouping',groupHeaderTpl:'<tpl if="name==1">内部账单</tpl><tpl if="name==2">客户账单</tpl>费用'}],
															title : '',
															fbar : [{
																xtype : 'button',
																frame : false,
																text : '新增账单项目',
																handler : function() {
																	Ext.widget('billadd',{orderid:record.get('id'),cbutton:this.up('gridpanel')});
																}
															},{
																xtype : 'button',
																frame : false,
																text : '<font color="red">导出客户账单<font>',
																href : '/order/exportbill/' + record.get('id')
															}],
															store : {
																autoLoad : true,
																isSortable : false,
																model : 'Xyh.model.Bill',
																groupField: 'type',
																proxy : {
																	type : 'ajax',
																	url : '/order/bill/'
																			+ record
																					.get('id'),
																	reader : {
																		type : 'json'
																	}
																}
															},
															columns : [{
																header : '费用代码',
																dataIndex : 'bill_code'
															}, {
																header : '费用名称',
																dataIndex : 'bill_name'
															}, {
																header : '单价',
																dataIndex : 'amount'
															}, {
																header : '数量',
																dataIndex : 'count'
															}, {
																header : '币种',
																dataIndex : 'currency'
															}, {
																header : '总价',
																dataIndex : 'total',
																width : 200
															}, {
																header : '',
																sortable : false,
																xtype : 'actioncolumn',
																items : [{
																	icon : 'resource/images/delete.png',
																	tooltip : '删除该记录',
																	handler : function(
																			grid,
																			rowIndex,
																			colIndex) {
																		var rec = grid
																				.getStore()
																				.getAt(rowIndex);
																		var contactId = rec
																				.get('id');
																		Ext.Msg
																				.confirm(
																						'提示',
																						'确定删除该费用项目吗?',
																						function(
																								button) {
																							if (button == 'yes') {
																								Ext.Ajax
																										.request(
																												{
																													url : '/order/bill/del/'
																															+ contactId,
																													success : function(
																															response) {
																														Ext.Msg
																																.alert(
																																		'',
																																		'删除成功');
																														grid
																																.getStore()
																																.load();

																													},
																													failure : function(
																															response) {
																														Ext.Msg
																																.show(
																																		{
																																			icon : Ext.Msg.ERROR,
																																			title : '出错了！',
																																			msg : '删除角色出错！！'

																																		});
																														grid
																																.getStore()
																																.load();
																													}

																												});
																							}
																						});

																	}
																}]
															}]

														}]
											}
										};
										var tab = tab_main.add(config);
										// tab.down('gridpanel').
									}
									tab_main.setActiveTab(tab);
								}

							}]
						}],
				dockedItems : [{
							xtype : 'pagingtoolbar',
							store : 'Order',
							dock : 'bottom',
							displayInfo : true
						}]
			}],

	initComponent : function() {
		// store.proxy.extraParams = {};
		Ext.getStore('Order').load();
		this.callParent(arguments);

	}
});